
package com.jf.cloud.common.order.dto;

import io.swagger.v3.oas.annotations.media.Schema;
import org.springframework.format.annotation.DateTimeFormat;

import java.util.Arrays;
import java.util.Date;
import java.util.List;


/**
 * @author zz
 */
public class OrderRefundSearchDTO {

    @Schema(description = "订单号" )
    private Long orderId;

    @Schema(description = "订单号id列表" )
    private List<Long> orderIds;

    @Schema(description = "退款单类型（1:整单退款,2:单个物品退款）" )
    private Integer refundType;

    @Schema(description = "申请类型:1,仅退款,2退款退货" )
    private Integer applyType;

    @Schema(description = "手机号码（默认当前订单手机号码）" )
    private String buyerMobile;

    @Schema(description = "用户id" )
    private Long userId;

    @Schema(description = "店铺id" )
    private Long shopId;

    @Schema(description = "退款单号" )
    private Long refundId;

    @Schema(description = "开始时间" )
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date startTime;

    @Schema(description = "退款申请开始时间" )
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date beginTime;

    @Schema(description = "退款申请结束时间" )
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date endTime;

    @Schema(description = "处理退款状态:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭)" )
    private Integer returnMoneySts;

    @Schema(description = "处理退款状态列表:(1.买家申请 2.卖家接受 3.买家发货 4.卖家收货 5.退款成功  -1.退款关闭)" )
    private List<Integer> returnMoneyStsList;

    @Schema(description = "店铺名称" )
    private String shopName;

    @Schema(description = "订单类型 1团购订单 2秒杀订单 3积分订单" )
    private Integer orderType;

    @Schema(description = "供应商id" )
    private Long supplierId;

    @Schema(description = "供应商名称")
    private String supplierName;

    @Schema(description = "供应商id列表")
    private List<Long> supplierIds;

    @Schema(description = "店铺id列表")
    private List<Long> shopIds;

    /**
     * 不等于该退款状态
     */
    private Integer returnMoneyStsExclude;


    @Schema(description = "开始页" )
    private Integer pageNum;

    @Schema(description = "每页大小" )
    private Integer pageSize;

    private Integer sysType;
    private String areaCode;
    /**
     * 响应数据字段数组
     */
    private String[] fetchSource;

    public String getAreaCode() {
        return areaCode;
    }

    public void setAreaCode(String areaCode) {
        this.areaCode = areaCode;
    }

    public String getSupplierName() {
        return supplierName;
    }

    public void setSupplierName(String supplierName) {
        this.supplierName = supplierName;
    }

    public List<Long> getSupplierIds() {
        return supplierIds;
    }

    public void setSupplierIds(List<Long> supplierIds) {
        this.supplierIds = supplierIds;
    }

    public List<Long> getShopIds() {
        return shopIds;
    }

    public void setShopIds(List<Long> shopIds) {
        this.shopIds = shopIds;
    }

    public Long getOrderId() {
        return orderId;
    }

    public void setOrderId(Long orderId) {
        this.orderId = orderId;
    }

    public Integer getRefundType() {
        return refundType;
    }

    public void setRefundType(Integer refundType) {
        this.refundType = refundType;
    }

    public Integer getApplyType() {
        return applyType;
    }

    public void setApplyType(Integer applyType) {
        this.applyType = applyType;
    }

    public String getBuyerMobile() {
        return buyerMobile;
    }

    public void setBuyerMobile(String buyerMobile) {
        this.buyerMobile = buyerMobile;
    }

    public Long getUserId() {
        return userId;
    }

    public void setUserId(Long userId) {
        this.userId = userId;
    }

    public Long getShopId() {
        return shopId;
    }

    public void setShopId(Long shopId) {
        this.shopId = shopId;
    }

    public Long getRefundId() {
        return refundId;
    }

    public void setRefundId(Long refundId) {
        this.refundId = refundId;
    }

    public Date getBeginTime() {
        return beginTime;
    }

    public void setBeginTime(Date beginTime) {
        this.beginTime = beginTime;
    }

    public Date getEndTime() {
        return endTime;
    }

    public void setEndTime(Date endTime) {
        this.endTime = endTime;
    }

    public Integer getReturnMoneySts() {
        return returnMoneySts;
    }

    public void setReturnMoneySts(Integer returnMoneySts) {
        this.returnMoneySts = returnMoneySts;
    }

    public String getShopName() {
        return shopName;
    }

    public void setShopName(String shopName) {
        this.shopName = shopName;
    }

    public Integer getOrderType() {
        return orderType;
    }

    public void setOrderType(Integer orderType) {
        this.orderType = orderType;
    }

    public Long getSupplierId() {
        return supplierId;
    }

    public void setSupplierId(Long supplierId) {
        this.supplierId = supplierId;
    }

    public Integer getSysType() {
        return sysType;
    }

    public void setSysType(Integer sysType) {
        this.sysType = sysType;
    }

    public Integer getPageNum() {
        return pageNum;
    }

    public void setPageNum(Integer pageNum) {
        this.pageNum = pageNum;
    }

    public Integer getPageSize() {
        return pageSize;
    }

    public void setPageSize(Integer pageSize) {
        this.pageSize = pageSize;
    }

    public String[] getFetchSource() {
        return fetchSource;
    }

    public void setFetchSource(String[] fetchSource) {
        this.fetchSource = fetchSource;
    }

    public List<Integer> getReturnMoneyStsList() {
        return returnMoneyStsList;
    }

    public void setReturnMoneyStsList(List<Integer> returnMoneyStsList) {
        this.returnMoneyStsList = returnMoneyStsList;
    }

    public List<Long> getOrderIds() {
        return orderIds;
    }

    public void setOrderIds(List<Long> orderIds) {
        this.orderIds = orderIds;
    }

    public Integer getReturnMoneyStsExclude() {
        return returnMoneyStsExclude;
    }

    public void setReturnMoneyStsExclude(Integer returnMoneyStsExclude) {
        this.returnMoneyStsExclude = returnMoneyStsExclude;
    }

    public Date getStartTime() {
        return startTime;
    }

    public void setStartTime(Date startTime) {
        this.startTime = startTime;
    }

    @Override
    public String toString() {
        return "OrderRefundSearchDTO{" +
                "orderId=" + orderId +
                ", orderIds=" + orderIds +
                ", refundType=" + refundType +
                ", applyType=" + applyType +
                ", buyerMobile='" + buyerMobile + '\'' +
                ", userId=" + userId +
                ", shopId=" + shopId +
                ", refundId=" + refundId +
                ", startTime=" + startTime +
                ", beginTime=" + beginTime +
                ", endTime=" + endTime +
                ", returnMoneySts=" + returnMoneySts +
                ", returnMoneyStsList=" + returnMoneyStsList +
                ", shopName='" + shopName + '\'' +
                ", orderType=" + orderType +
                ", supplierId=" + supplierId +
                ", returnMoneyStsExclude=" + returnMoneyStsExclude +
                ", pageNum=" + pageNum +
                ", pageSize=" + pageSize +
                ", sysType=" + sysType +
                ", fetchSource=" + Arrays.toString(fetchSource) +
                '}';
    }
}
